Variable cancel of future print jobs

ABSTRACT

A printer is responsive to user input to cancel print jobs that are received after the user input. For example, the user input indicates a future job cancellation period during which any print jobs will be cancelled. Alternatively, the user indicates a job cancellation count, which is a number of current or future print jobs that are to be cancelled.

TECHNICAL FIELD

The present invention relates to print devices and, more particularly, to methods and systems for canceling print jobs received by a print device.

BACKGROUND

When using a printer with a computer, a situation sometimes arises in which a print job is sent to the printer and it is later desired to recall or cancel the print job. In some cases, the print job can be canceled from the computer. In other cases, it may be too late to cancel the job from the computer, and it may be necessary to interact with the printer in order to cancel the job.

Many printers have a “cancel” button that a user presses to cancel the print job that is currently being processed. The ability to cancel the current print job is effective and sufficient in many situations. However, the simple functionality of a cancel button can be inadequate in other situations.

Specifically, there are situations in which multiple print jobs are mistakenly sent to the printer and a user wishes to cancel many or all of such print jobs. For example, suppose there is a condition that prevents the printer from processing its print jobs—an out-of-paper condition or a network communications problem. In response to a condition such as this, a user's initial attempt to print a document fails, and the user might respond by sending the print job to the printer multiple times before realizing the nature of the problem. Once the problem is fixed, the printer dutifully completes the multiple, duplicate print jobs, even though the user really needed only a single copy of the document. The printer's cancel button can be used to cancel each successive print job, but the user must stand by the printer to press the cancel button as the printer receives or attempts to print each successive print job. In many cases, it is difficult to correctly time this operation, and the printer might print an initial page of each document before the user can cancel it.

As another example, there are times when a user inadvertently sends a binary file or other file that is not formatted appropriately for the printer. Although the printer attempts to interpret the file as a valid print job, the resulting output is usually a sequence of random characters. Furthermore, certain codes encountered by the printer when parsing such binary files are interpreted as “end-of-job” codes, which cause the printer to advance to a new page and begin what it has interpreted as a new job. Thus, the end result of sending a binary file to the printer can be a large number of wasted pages. To avoid this result, the user needs to press the cancel button as each new “job” is encountered. In many cases, the printer is faster than the user, so that the user is unable to press the cancel button fast enough to avoid printing at least one page for each “job”. This can result in a lot of wasted paper and time.

SUMMARY

The print devices described herein allow a user to cancel future print jobs. In one embodiment, pressing the cancel button progressively increments a job cancellation time, allowing a user to cancel jobs that are initiated or that are received for a specified future time. In another embodiment, pressing the cancel button increments a job cancellation count, allowing the user to cancel a specified number of current and/or subsequent print jobs.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing pertinent components of an exemplary print device.

FIG. 2 shows a display panel of the print device shown in FIG. 1.

FIG. 3 is a block diagram showing pertinent functional component of the print device of FIG. 1.

FIG. 4 is a block diagram showing logical components implemented at least in part by the functional components of FIG. 3.

FIG. 5 is a flowchart showing methodological aspects in accordance with a first embodiment of the invention.

FIG. 6 is a flowchart showing methodological aspects in accordance with a second embodiment of the invention.

DETAILED DESCRIPTION

FIG. 1 shows a printer or other print device 10 in accordance with an embodiment of the invention. Examples of print devices include laser-based printers, ink-jet printers, dot-matrix printers, and others. Such print devices can be configured as personal printers associated with individual computers, network-based printers or copiers, so-called multi-function products (MFPs), and other types of devices that produce images based on received data.

Print device 10 has one or more communications ports 12 through which it receives individual print jobs. Each print job typically comprises a data structure or sequence of data values formatted in accordance with a predetermined protocol such as PCL (printer control language), Postscript, PDF (portable document format, defined by Adobe Systems Incorporated), HTML (hyper-text markup language), PJL (printer job language), etc. Each print job is typically terminated with some predetermined data value that acts as an “end-of-job” indicator, and which delineates between successive print jobs.

Communications ports 12 may include parallel or serial input ports, network ports, infrared communications ports, and/or other types of data ports that allow data and print jobs to be provided to printer 10. Print jobs are typically provided to printer 10 by one or more computers or computer-like devices (not shown) through the communications ports 12 of printer 10.

Print device 10 has a control panel 14, which is shown in more detail in FIG. 2. In this embodiment, control panel 14 comprises a status display 16 and a cancel input or key 18 that can be selected by a user. In many embodiments, the control panel will comprise a variety of different control elements such as additional keys and indicators. Furthermore, the cancel input 18 might be implemented in different ways, such as by way of a menu selection, by a programmable “soft” key, by a displayed control on a touch-sensitive display, etc. Alternatively, it would be possible to implement much of the functionality described below with only a single cancel input key, without any associated indicators, displays, or additional keys.

FIG. 3 shows pertinent operational components of printer 10, including one or more processors 22, volatile memory 23, non-volatile memory 24, communications components or ports 25, and I/O components 26 that allow processor 22 to control various electromechanical and electro-optical components of printer 12 in order to transform received printing instructions into printed pages. FIG. 3 also shows control panel 14. Processor 22 is configured by way of instructions stored in memory 23 and 24 to perform normal printing operations, and to perform the unique job cancellation functions that will be described in more detail below.

FIG. 4 shows pertinent logical or functional components implemented by the processor-based system illustrated in FIG. 3. Note that while the described functionality is described as being implemented with a programmable processor, associated memory, and program instructions that are retrieved from the memory and executed in sequence by the processor, the functionality might alternatively be implemented with various types of configurable, non-instruction-based components such as ASICs (application-specific integrated circuits), by so-called “hard-wired” logic, or by other existing or yet-to-be-developed technologies.

Pertinent logical components of printer 10 shown in FIG. 4 include a job queue 32, job processing logic 33, and job cancellation logic 34. FIG. 4 also shows control panel 14, through which job cancellation logic 34 receives commands and other input from a user of the printer.

When a print job is received at a communications port 25, it is stored in job queue 32. From there, job processing logic 33 retrieves print jobs on a first-come, first-served basis and takes the necessary steps to print the documents defined by the print jobs.

Job cancellation logic 34 is responsive to cancel input 18 (FIG. 2) to cancel current and future print jobs. More specifically, the job cancellation logic 34 cancels print jobs in accordance with how long the cancel input was selected by the user. Even more specifically, the job cancellation logic cancels all print jobs received prior to and during a cancellation period that increases as a function of how long the cancel input was selected by the user. Jobs are cancelled by removing them from job queue 32 and/or by instructing job processing logic 33 to terminate its processing activities with respect to jobs that are already being processed.

In the embodiment described herein, the user specifies a future cancellation time period by holding down or continuously selecting cancel input 18 of control panel 14 for a variable time. Initially pressing cancel key 18 cancels only the print job currently being processed or received. After the cancel key is held for a predetermined duration, however, job cancellation logic 34 cancels all currently in-process, queued, and/or received print jobs and begins calculating a cancellation time period during which future print jobs will be cancelled. The cancellation period is progressively increased as the user continues to depress or select the cancel input. As the user continues to press the cancellation key and as the cancellation time period increases, the increasing cancellation time period is displayed on status display panel 16. After the user releases or has no longer selected the cancel input, the job cancellation logic cancels all print jobs that are received or that would have otherwise been initiated during a period of time that is equal to the specified cancellation period. After the user releases the cancel key, any remaining portion of the job cancellation period is displayed on panel 16 as it counts down. In addition, the number of print jobs that have been cancelled during the cancellation period is displayed on panel 16. As an example, the display panel might appear as follows while setting a cancellation period or while the cancellation period counts down to zero after releasing the cancel key:

Jobs Cancelled: 5 Cancellation Period: 16

Preferably, the calculated job cancellation time is greater than the time that the cancel input is selected. For example, the job cancellation period can be calculated so that it is proportional to the time during which the cancel key was selected. More preferably, the cancellation period is increased by successively larger factors or amounts with each successive and continuous unit of time that the cancel key remains selected. For example, pressing the cancel key for one second creates a cancellation period of two seconds; pressing the cancellation key for two seconds creates a cancellation period of four seconds; pressing the cancellation key for three seconds creates a cancellation period of nine seconds; pressing the cancellation key for four seconds creates a cancellation period of sixteen seconds, and so on.

FIG. 5 shows methodological aspects implemented by the components discussed above. A decision block 312 comprises monitoring the cancel key or input to detect when it has been activated. If the cancel key is selected or activated, execution goes to block 314, which comprises canceling the current print job. Subsequent blocks 316 and 318 comprise determining whether the cancel key remains selected for a predetermined threshold duration, such as one second. If the cancel key is released before the threshold duration, execution reverts to block 312 to await another activation of the cancel key. If the cancel key remains selected for the threshold duration, however, the process initiates a job cancellation period.

In response to selecting the cancel input for the threshold duration, execution begins at block 320, which comprises canceling all current print jobs. This includes all jobs currently being received, all jobs currently being printed, and all jobs that are in the job queue. In addition, display block 322 comprises displaying, on the status display, the number of print jobs that have been cancelled up to this point and the current value of the cancellation period.

Subsequent to block 322, the process is responsive to further selection of the cancel key to increase the job cancellation period as a function of the time that the cancel input is selected. More specifically, a decision block 324 comprises again monitoring the cancel input to detect whether it remains selected. If it does, execution proceeds with block 326, which comprises increasing the cancellation period in accordance with the duration of time that the cancel key has been continuously selected. Execution then returns to blocks 320 and 322, which comprise canceling any newly received jobs and displaying the updated number of jobs that have been canceled and the current value of the cancellation period.

If the cancel key is no longer selected in block 324, execution goes to block 328 which comprises decreasing the remaining cancellation period in accordance with the elapsed time since the cancel key was released. If the remaining cancellation period has decreased to zero in block 330, execution returns to block 312 to await another selection of the cancel key. If there is still remaining time in the cancellation period, however, execution goes from block 330 to blocks 320 and 322, in which any newly received jobs or other in-process jobs are cancelled and the display is updated to reflect the number of jobs that have been canceled and the current or remaining value of the cancellation period.

In an alternative embodiment, current and future print jobs are cancelled by specifying a job cancellation count rather than a job cancellation time period. Such a count is specified by continuously selecting the cancel key for a variable time: the job cancellation logic is responsive to the cancel input to cancel a number of print jobs that increases as a function of the time that the cancel input is selected. The count increases linearly as the cancel input is continuously selected. Alternatively, the count can be made to increase progressively faster as the cancel input is selected for longer and longer periods.

In this embodiment, display panel 16 (FIGS. 1 and 2) is updated to display the job cancellation count as it is increased in response to selecting the cancel input, and as it decreases or counts down when jobs are cancelled. In addition, the total number of jobs that have been cancelled is displayed.

Jobs Cancelled: 5 Remaining Jobs to Cancel: 10

In this embodiment, setting a job cancellation count can result in canceling both currently queued or in-process print jobs and print jobs that have not yet been received by the printer. Jobs are cancelled in the order that they are or were received-jobs received first are canceled first.

Although holding down the cancel key is disclosed as a preferred technique for indicating a cancellation period or cancellation count, other input methods might be used to indicate a measure of present and/or future print jobs to be cancelled. For example, repeatedly pressing the cancel key or otherwise selecting some type of control might be used to indicate a cancellation period or cancellation count, where each successive press or selection increments the period or count by a predetermined amount or by an amount that increases with each successive press or selection.

FIG. 6 shows methodological aspects employed in this embodiment of the invention. A decision block 412 comprises monitoring the cancel key or input to detect when it has been activated. If the cancel key is selected or activated, execution goes to block 414, which comprises canceling the current print job. Subsequent blocks 416 and 418 comprise determining whether the cancel key remains selected for a predetermined threshold duration, such as one second. If the cancel key is released before the threshold duration, execution reverts to block 412 to await another activation of the cancel key. If the cancel key remains selected for the threshold duration, however, execution flows to block 420, which comprises increasing the job cancellation count in accordance with the duration that the cancel input has been selected. Block 424 is executed next, comprising canceling any currently queued or in-process print jobs, up to the number of the current job cancellation count. In addition, the job cancellation count is decremented once for every print job that is canceled.

A subsequent display block 426 comprises displaying, on the status display, the number of print jobs that have been cancelled up to this point and the current job cancellation count.

Subsequent to block 426, the process is responsive to further selection of the cancel key to increase the job cancellation count as a function of the time that the cancel input is selected. More specifically, a decision block 428 comprises again monitoring the cancel input to detect whether it remains selected. If it does, execution returns to block 420, which comprises increasing the cancellation period in accordance with the duration of time that the cancel key has been continuously selected, and to subsequent blocks 424 and 426. If the cancel key is no longer selected in block 428, execution goes to block 430. If the job cancellation count has decreased to zero at block 430, execution returns to block 412 to await another selection of the cancel key. If there are remaining jobs to be cancelled (the job cancellation count is greater than zero), however, execution loops from block 430 to blocks 424 and 426, which continue to cancel print jobs and update the display.

Although FIGS. 5 and 6 indicate specific methodological implementations, it should be recognized that there are many different ways of implementing the described features and of allowing a user to set a job cancellation period or to set a number of jobs that are to be cancelled.

The techniques described above allow a user to recover more easily when numerous print jobs are mistakenly sent to and queued at a printer, or in any other situation in which the user simply wishes to cancel multiple transmitted or queued print jobs. The described solutions are quite easy to implement within a printer. Furthermore, the solutions are easy for a user to understand and use.

For example, suppose that a user mistakenly sends a binary file that the printer interprets as multiple separate print jobs. To recover from this situation in conjunction with the first embodiment described above, the user can simply press the cancel key to program a job cancellation period of thirty seconds. Any of the mistaken “jobs” received during this period will be canceled. Furthermore, because the printer has been instructed to cancel future print jobs, such jobs are canceled before they begin. This eliminates the wasted pages that often result in prior art system when the user is unable to correctly time his or her activation of the cancel key.

Although the invention has been described in language specific to structural features and/or methodological steps, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or steps described. Rather, the specific features and steps are disclosed as preferred forms of implementing the claimed invention. 

1. A print device that receives multiple print jobs, comprising: a cancel input that is selectable by a user; and job cancellation logic that is responsive to selecting the cancel input continuously for a duration of time to cancel future print jobs in accordance with the duration of time the cancel input was selected continuously by the user.
 2. A print device as recited in claim 1, wherein the job cancellation logic cancels print jobs during a cancellation period that increases as a function of the duration of time the cancel input was selected continuously by the user.
 3. A print device as recited in claim 1, wherein the job cancellation logic cancels a number of print jobs that increases as a function of the duration of time the cancel input was selected continuously by the user.
 4. A print device that receives multiple print jobs, comprising: a cancel input that is selectable continuously by a user for a variable duration of time; and job cancellation logic that is responsive to the cancel input to cancel print jobs during a cancellation period that increases as a function of the duration of time that the cancel input is selected continuously.
 5. A print device as recited in claim 4, wherein the cancellation period is greater than the duration of time that the cancel input is selected continuously.
 6. A print device as recited in claim 4, further comprising a status display that indicates the increasing cancellation period while the cancel input is selected continuously.
 7. A print device as recited in claim 4, further comprising a status display that indicates the remaining cancellation period when the cancel input is no longer selected.
 8. A print device as recited in claim 4, further comprising a status display that indicates the increasing cancellation period while the cancel input is selected and that indicates the remaining cancellation period when the cancel input is no longer selected.
 9. A print device as recited in claim 4, further comprising a status display that indicates how many print jobs have been cancelled.
 10. A print device as recited in claim 4, further comprising a status display that indicates the increasing cancellation period while the cancel input is selected; the remaining cancellation period when the cancel input is no longer selected; and how many print jobs have been cancelled.
 11. A print device as recited in claim 4, further comprising a print queue, wherein the job cancellation logic cancels all jobs in the print queue in response to selecting the cancel input continuously for a predetermined duration of time.
 12. In a print device that receives multiple print jobs, a method comprising: initiating a job cancellation period in response to user selection of a cancel input; increasing the job cancellation period as a function of a duration of time that the cancel input is selected continuously; and canceling print jobs during the job cancellation period.
 13. A method as recited in claim 12, wherein the job cancellation period is greater than the duration of time that the cancel input is selected continuously.
 14. A method as recited in claim 12, further comprising: displaying the increasing cancellation period while the cancel input is selected.
 15. A method as recited in claim 12, further comprising: displaying the remaining cancellation period when the cancel input is no longer selected.
 16. A method as recited in claim 12, further comprising: displaying the increasing cancellation period while the cancel input is selected; and displaying the remaining cancellation period when the cancel input is no longer selected.
 17. A method as recited in claim 12, further comprising: displaying how many print jobs have been cancelled.
 18. A method as recited in claim 12, further comprising: displaying the increasing cancellation period while the cancel input is selected; displaying the remaining cancellation period when the cancel input is no longer selected; and displaying how many print lobs have been cancelled.
 19. A method as recited in claim 12, further comprising canceling all queued print jobs in response to selecting the cancel input continuously for a predetermined duration of time.
 20. A print device that receives multiple print jobs, comprising: a cancel input that is selectable by a user continuously for a variable duration of time; and job cancellation logic that is responsive to the cancel input to cancel a number of print jobs that increases as a function of the duration of time that the cancel input is selected continuously.
 21. A print device as recited in claim 20, wherein the job cancellation logic cancels future print jobs that are received when the cancel input is no longer selected.
 22. A print device as recited in claim 20, further comprising a status display that indicates the increasing number of print jobs while the cancel input is selected.
 23. A print device as recited in claim 20, further comprising a status display that indicates the remaining number of print jobs to cancel when after the cancel input is no longer selected.
 24. A print device as recited in claim 20, further comprising a status display that indicates the increasing number of print jobs while the cancel input is selected and that indicates the remaining number of print jobs to cancel when the cancel input is no longer selected.
 25. In a print device that receives multiple print jobs, a method comprising: determining a number of print jobs to be canceled in response to user selection of a cancel input continuously for a duration of time; increasing the number of print jobs to be canceled as a function of the duration of time that the cancel input is selected continuously; and canceling the determined number of print jobs.
 26. A method as recited in claim 25, wherein at least some of the cancelled print jobs are received when the cancel input is no longer selected.
 27. A method as recited in claim 25, further comprising: displaying the increasing number of print jobs while the cancel input is selected.
 28. A method as recited in claim 26, further comprising: displaying the remaining number of print jobs to cancel when the cancel input is no longer selected.
 29. A method as recited in claim 25, further comprising: displaying the increasing number of print jobs while the cancel input is selected; and displaying the remaining number of print jobs to cancel while the cancel input is no longer selected.
 30. A method as recited in claim 25, further comprising canceling all queued print jobs in response to selection of the cancel input continuously for a predetermined duration of time. 